deploy: Error out if we see usr/etc
authorColin Walters <walters@verbum.org>
Fri, 5 Jul 2013 21:29:07 +0000 (17:29 -0400)
committerColin Walters <walters@verbum.org>
Fri, 5 Jul 2013 21:29:07 +0000 (17:29 -0400)
This version of the code doesn't know what to do with new-model trees,
so just abort if we see that.  We'll likely never care about upgrades
from 1.0 to 2.0.

src/ostree/ot-admin-builtin-deploy.c

index 4569761816268d3a7002ccb00cff84b5804ef936..c13ac56b1c91e01437903708341544e82d670d7b 100644 (file)
@@ -509,6 +509,7 @@ deploy_tree (OtAdminDeploy     *self,
     {
       ProcessOneCheckoutData checkout_data;
       ot_lobj GFile *triggers_run_path = NULL;
+      gs_unref_object GFile *usr_etc_path = NULL;
 
       g_print ("ostadmin: Creating deployment %s\n",
                gs_file_get_path_cached (self->deploy_target_path));
@@ -528,6 +529,14 @@ deploy_tree (OtAdminDeploy     *self,
       if (checkout_data.caught_error)
         goto out;
 
+      usr_etc_path = g_file_resolve_relative_path (deploy_target_path_tmp, "usr/etc");
+      if (g_file_query_exists (usr_etc_path, NULL))
+        {
+          g_set_error (error, G_IO_ERROR, G_IO_ERROR_INVALID_ARGUMENT,
+                       "Error: This tree contains usr/etc; it is likely an OS in version 2.0 format, and this version of OSTree does not support it");
+          goto out;
+        }
+
       triggers_run_path = g_file_resolve_relative_path (deploy_target_path_tmp, "usr/share/ostree/triggers-run");
 
       if (!g_file_query_exists (triggers_run_path, NULL))